//
//  HWWelfareCenterProtocol.swift
//  HWanGame
//
//  Created by 王昌健 on 2022/4/2.
//  Copyright © 2022 94Wan. All rights reserved.
//

import UIKit

class HWWelfareCenterProtocol: NSObject {
    var model:HWWelfareCenterModel?
    var itemClick:((_:HWWelfareCenterDataModel)->())?
    var jumpToNews:((_:HWWelfareCenterNewsModel)->())?
}

extension HWWelfareCenterProtocol:UITableViewDelegate,UITableViewDataSource {
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        if indexPath.section == 2 {
            jumpToNews?(model?.news[indexPath.row] ?? HWWelfareCenterNewsModel())
        }
    }
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let header = HWWelfareCenterHeader.headerOrFooterWithTableView(tableView: tableView)
        return header
    }
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        if section == 2 {
            return 58*widthScale
        }
        return 0
    }
    func numberOfSections(in tableView: UITableView) -> Int {
        return 3
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if section == 0 {
            if (model?.topdata.count ?? 0) > 0 {
                return 1
            }
        }else if section == 1 {
            if (model?.maindata.count ?? 0) > 0 {
                return 1
            }
        }else if section == 2 {
            if (model?.news.count ?? 0) > 0 {
                return model!.news.count
            }
        }
        return 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let topCell = HWWelfareCenterTopCell.cellWithTableView(tableView: tableView)
        let funcCell = HWWelfareFuncCell.cellWithTableView(tableView: tableView)
        let newsCell = HWWelfareNewsCell.cellWithTableView(tableView: tableView)
        if indexPath.section == 0 {
            topCell.model = model
            topCell.itemClick = {
                mod in
                self.itemClick?(mod)
            }
            return topCell
        } else if indexPath.section == 1 {
            funcCell.model = model
            funcCell.itemClick = {
                mod in
                self.itemClick?(mod)
            }
            return funcCell
        }else {
            newsCell.model = model?.news[indexPath.row]
            return newsCell
        }
    }
}
